var nums = [4,1,2,1,2];

var singleNumber = function(nums) {
	/*
		利用异或运算的特性：
			任何数 x ^ 0 == x
			任何数 x ^ x == 0
			交换律 x ^ y ^ x == x ^ x ^ y
	*/
    return nums.reduce((res,item)=>{
        if(res === null){
            return item;
        }else{
            return res ^ item;
        }
    },null)
};
console.log(singleNumber(nums));